const router = require('express').Router();
const mysql = require('mysql')
// 写接口： 
router.route("/login").post((req, res) => {
  // console.log("调接口没有？")
  let { username, password } = req.body;
  // 创建一个与数据库的链接：
  const db = mysql.createConnection({
    host: 'localhost', // 数据库在哪里？ip, 127.0.0.1,localhost
    port: '3306', // 端口
    user: 'root', // 用户名
    password: '1234', // 密码
    database: 'mydoctor',//数据库的名称
    multipleStatements: true, //true，允许同时执行多条SQL语句
    timezone: '08:00' //设置时区,如果不设置，就可能出现1天的时差
  })
  // 打开连接
  db.connect(); // nodejs 与mysql 进行通信
  // 执行SQL语句：
  // db.query(sql， 参数数组， 回调函数)
  // 为了防止SQL注入的漏洞，使用?做变量的占位符号，而不使用字符串+变量的拼接。
  let sql = 'SELECT * FROM `users` WHERE `uaccess`=? AND `upassword`=?;';
  let params = [username, password]; // 数组里面内容的顺序，对应sql语句里面？的先后顺序。
  let cb = (err, data) => {
    // 写接口时，必须输出err,data，方便测试接口。
    // 接口没有问题后，在注释掉
    console.log(err)
    // console.log(data)

    if (err === null && data.length === 1) {
      res.redirect("/html/main.html")
    } else {
      res.redirect("/index.html")
    }
    /* 
     // err, 表示错误对象，只要执行SQL失败，就查看err信息，找原因。
        // console.log(err)  // null,表示没有错误发生
        // console.log(data) // data如果是[],表示查无此账号。即登录失败。
    
    一个JSON对象：
    [
      RowDataPacket {
        uid: 3,
        uaccess: 'wenqingwu',
        uname: '皮尼亚',
        upassword: '123456',
        usex: '女',
        usid: '512012198808081234',
        utel: '13258231798',
        uphoto: 'dayuh-1672044597055.webp',
        ustate: '1'
      }
    ]
    */
  }
  db.query(sql, params, cb);
  // 关闭连接
  db.end()
})
// 在最后一行导出，公开对象
module.exports = router;